using System;
using System.Text;
using System.Reflection;
using System.ServiceModel;
using System.Collections.Generic;
using System.Runtime.Serialization;
using TDS = Tridion.ContentManager.Interop.TDS;
using TDSDefines = Tridion.ContentManager.Interop.TDSDefines;

#pragma warning disable 649
namespace Tridion.Gateway
{
	[DataContract]
	public class ActivityDefinition:Facade
	{
        internal ActivityDefinition(TDS.ActivityDefinition ActivityDefinition, bool ShallowCopy)
            : base(typeof(TDS._ActivityDefinition), ActivityDefinition, ShallowCopy)
		{
		}

		[DataMember(Name="ItemType")]
		private TDSDefines.ItemType itemtype;
		public TDSDefines.ItemType ItemType
		{
			 get { return itemtype; }
		}


		[DataMember(Name="ID")]
		private String id;
		public String ID
		{
			 get { return id; }
		}


		[DataMember(Name="Title")]
		private String title;
		public String Title
		{
			 get { return title; }
		}


		[DataMember(Name="ProcessDefinition")]
		private ProcessDefinition processdefinition;
		public ProcessDefinition ProcessDefinition
		{
			 get { return processdefinition; }
		}


		[DataMember(Name="Description")]
		private String description;
		public String Description
		{
			 get { return description; }
		}


		[DataMember(Name="Script")]
		private String script;
		public String Script
		{
			 get { return script; }
		}


		[DataMember(Name="ActivityType")]
		private TDSDefines.EnumActivityType activitytype;
		public TDSDefines.EnumActivityType ActivityType
		{
			 get { return activitytype; }
		}


		[DataMember(Name="ApprovalStatus")]
		private ApprovalStatus approvalstatus;
		public ApprovalStatus ApprovalStatus
		{
			 get { return approvalstatus; }
		}


        //TODO:Fix
        //[DataMember(Name="Assignee")]
        //private Object assignee;
        //public Object Assignee
        //{
        //     get { return assignee; }
        //}

        
        [DataMember(Name = "Publication")]
        private PublicationURI publication;
        public PublicationURI Publication
        {
            get { return publication; }
        }


        //TODO:Fix
        //[DataMember(Name="OrganizationalItem")]
        //private Object organizationalitem;
        //public Object OrganizationalItem
        //{
        //     get { return organizationalitem; }
        //}

        protected override void Initialize(FieldInfo field, PropertyInfo property, Object value)
        {

        }

	}
}

/*
			System.String GetXML(Tridion.ContentManager.Interop.TDSDefines.XMLReadFilter)
*/
